OAuth 2.0ãå æ¬çã«è§£èª¬ãã°ã©ã³ãã¿ã€ããã»ãã¥ãªãã£ãå®è£ ãã¹ããã©ã¯ãã£ã¹ãç¶²çŸ ããå®å šãªèªèšŒãšèªå¯ãå®çŸããŸãã
OAuth 2.0: èªèšŒãããŒã®æ±ºå®çã¬ã€ã
仿¥ã®çžäºæ¥ç¶ãããããžã¿ã«äžçã«ãããŠãå®å šãªèªèšŒãšèªå¯ã¯æéèŠã§ããOAuth 2.0ã¯ããªãœãŒã¹ãžã®å®å šãªå§ä»»ã¢ã¯ã»ã¹ãèš±å¯ããããã®æ¥çæšæºãããã³ã«ãšããŠç»å ŽããŸããããã®å æ¬çãªã¬ã€ãã§ã¯ãOAuth 2.0ã®è€éããæãäžãããã®ã³ã¢ã³ã³ã»ãããããŸããŸãªã°ã©ã³ãã¿ã€ããã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ããããŠå®è£ ã®ãã¹ããã©ã¯ãã£ã¹ã解説ããŸããçµéšè±å¯ãªéçºè ã§ãããWebã»ãã¥ãªãã£ãåŠã³å§ããã°ããã®æ¹ã§ããããã®ã¬ã€ãã¯OAuth 2.0ãšãã®çŸä»£çãªã¢ããªã±ãŒã·ã§ã³ãä¿è·ããäžã§ã®åœ¹å²ã«ã€ããŠã確ããªçè§£ãæäŸããŸãã
OAuth 2.0ãšã¯ïŒ
OAuth 2.0ã¯ãã¢ããªã±ãŒã·ã§ã³ãFacebookãGoogleããããã¯ç¬èªã®ã«ã¹ã¿ã APIãšãã£ãHTTPãµãŒãã¹äžã®ãŠãŒã¶ãŒã¢ã«ãŠã³ããžã®éå®çãªã¢ã¯ã»ã¹ãååŸã§ããããã«ããèªå¯ãã¬ãŒã ã¯ãŒã¯ã§ãããŠãŒã¶ãŒèªèšŒããŠãŒã¶ãŒã¢ã«ãŠã³ãããã¹ããããµãŒãã¹ã«å§ä»»ãããµãŒãããŒãã£ã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã®è³æ Œæ å ±ãå ¬éããããšãªããŠãŒã¶ãŒããŒã¿ã«ã¢ã¯ã»ã¹ããããšãèš±å¯ããŸããããã¯ãé§è»ãµãŒãã¹ã«ãã¬ãŒããŒãæž¡ããããªãã®ã ãšèããŠãã ãããè»ãé§è»ããããšã¯èš±å¯ããŸãããã°ããŒãããã¯ã¹ããã©ã³ã¯ïŒå人ããŒã¿ïŒãžã®ã¢ã¯ã»ã¹ã¯èš±å¯ããŸããã
OAuth 1.0ãšã®äž»ãªéã: OAuth 2.0ã¯OAuth 1.0ãšã®åŸæ¹äºææ§ããããŸãããWebã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãªã©ãããåºç¯ãªã¢ããªã±ãŒã·ã§ã³ã«å¯Ÿå¿ãããããã·ã³ãã«ããšæè»æ§ã念é ã«çœ®ããŠèšèšãããŸããã
OAuth 2.0ã®ã³ã¢ã³ã³ã»ãã
OAuth 2.0ãçè§£ããããã«ã¯ããã®äž»èŠãªã³ã³ããŒãã³ããææ¡ããããšãäžå¯æ¬ ã§ã:
- ãªãœãŒã¹ãªãŒããŒ: ä¿è·ããããªãœãŒã¹ãææãããšã³ããŠãŒã¶ãŒïŒäŸïŒåçå ±æãµã€ãäžã®ããªãã®åçïŒãå€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ã«ãã°ã€ã³ãã人ç©ã§ãã
- ã¯ã©ã€ã¢ã³ã: ãªãœãŒã¹ãªãŒããŒã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãèŠæ±ããã¢ããªã±ãŒã·ã§ã³ïŒäŸïŒããªãã®åçãžã®ã¢ã¯ã»ã¹ãèŠæ±ããåçç·šéã¢ããªïŒãWebã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã«ã¢ããªããŸãã¯ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãããã«è©²åœããŸãã
- èªå¯ãµãŒããŒ: ãªãœãŒã¹ãªãŒããŒãèªèšŒããåæãåŸãåŸã«ã¢ã¯ã»ã¹ããŒã¯ã³ãçºè¡ãããµãŒããŒãéåžžããŠãŒã¶ãŒã¢ã«ãŠã³ãããã¹ãããŠãããµãŒããŒã§ãïŒäŸïŒGoogleã®èªèšŒãµãŒããŒïŒã
- ãªãœãŒã¹ãµãŒããŒ: ä¿è·ããããªãœãŒã¹ããã¹ãããŠãããµãŒããŒïŒäŸïŒåçå ±æãµã€ãã®APIãµãŒããŒïŒã
- ã¢ã¯ã»ã¹ããŒã¯ã³: ã¯ã©ã€ã¢ã³ãã«ä»äžãããèªå¯ã衚ãè³æ Œæ å ±ã§ãç¹å®ã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸããã¢ã¯ã»ã¹ããŒã¯ã³ã«ã¯å¯¿åœãéãããŠããŸãã
- ãªãã¬ãã·ã¥ããŒã¯ã³: ãªãœãŒã¹ãªãŒããŒãã¯ã©ã€ã¢ã³ããåèªå¯ããå¿ èŠãªããæ°ããã¢ã¯ã»ã¹ããŒã¯ã³ãååŸããããã«äœ¿çšãããé·å¯¿åœã®è³æ Œæ å ±ãéåžžãã¯ã©ã€ã¢ã³ãã«ãã£ãŠå®å šã«ä¿ç®¡ãããŸãã
- ã¹ã³ãŒã: ã¯ã©ã€ã¢ã³ããèŠæ±ããŠããã¢ã¯ã»ã¹ã®ã¬ãã«ãå®çŸ©ããŸãïŒäŸïŒãããã£ãŒã«æ å ±ãžã®èªã¿åãå°çšã¢ã¯ã»ã¹ãé£çµ¡å ãžã®èªã¿æžãã¢ã¯ã»ã¹ïŒã
OAuth 2.0 ã°ã©ã³ãã¿ã€ã: é©åãªãããŒã®éžæ
OAuth 2.0ã¯ãããŸããŸãªã·ããªãªã«é©ããããã€ãã®ã°ã©ã³ãã¿ã€ããå®çŸ©ããŠããŸããé©åãªã°ã©ã³ãã¿ã€ããéžæããããšã¯ãã»ãã¥ãªãã£ãšãŠãŒã¶ããªãã£ã«ãšã£ãŠæ¥µããŠéèŠã§ãã
1. èªå¯ã³ãŒãã°ã©ã³ã
èªå¯ã³ãŒãã°ã©ã³ãã¯ãã¯ã©ã€ã¢ã³ããã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãããå®å šã«ä¿ç®¡ã§ããWebã¢ããªã±ãŒã·ã§ã³ããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã§æãäžè¬çã«äœ¿çšãããæšå¥šãããã°ã©ã³ãã¿ã€ãã§ãã
ãããŒ:
- ã¯ã©ã€ã¢ã³ãã¯ãªãœãŒã¹ãªãŒããŒãèªå¯ãµãŒããŒã«ãªãã€ã¬ã¯ãããŸãã
- ãªãœãŒã¹ãªãŒããŒã¯èªå¯ãµãŒããŒã§èªèšŒããã¯ã©ã€ã¢ã³ãã«èš±å¯ãäžããŸãã
- èªå¯ãµãŒããŒã¯ãªãœãŒã¹ãªãŒããŒãèªå¯ã³ãŒããšãšãã«ã¯ã©ã€ã¢ã³ãã«ãªãã€ã¬ã¯ãããŸãã
- ã¯ã©ã€ã¢ã³ãã¯èªå¯ã³ãŒããã¢ã¯ã»ã¹ããŒã¯ã³ãããã³ãªãã·ã§ã³ã§ãªãã¬ãã·ã¥ããŒã¯ã³ãšäº€æããŸãã
- ã¯ã©ã€ã¢ã³ãã¯ã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŠä¿è·ããããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããŸãã
äŸ: ãŠãŒã¶ãŒãååŒãèªåçã«ã€ã³ããŒãããããã«ãäŒèšãœãããŠã§ã¢ïŒã¯ã©ã€ã¢ã³ãïŒãèªåã®éè¡å£åº§ïŒãªãœãŒã¹ãµãŒããŒïŒã«æ¥ç¶ããããšããŸãããŠãŒã¶ãŒã¯éè¡ã®ãŠã§ããµã€ãïŒèªå¯ãµãŒããŒïŒã«ãªãã€ã¬ã¯ãããããã°ã€ã³ããŠèš±å¯ãäžããŸãããã®åŸãéè¡ã¯ãŠãŒã¶ãŒãèªå¯ã³ãŒããšãšãã«äŒèšãœãããŠã§ã¢ã«ãªãã€ã¬ã¯ãããŸããäŒèšãœãããŠã§ã¢ã¯ãã®ã³ãŒããã¢ã¯ã»ã¹ããŒã¯ã³ãšäº€æããããã䜿çšããŠéè¡ãããŠãŒã¶ãŒã®ååŒããŒã¿ãååŸããŸãã
2. ã€ã³ããªã·ããã°ã©ã³ã
ã€ã³ããªã·ããã°ã©ã³ãã¯ãäž»ã«ã¯ã©ã€ã¢ã³ããã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãããå®å šã«ä¿ç®¡ã§ããªããã©ãŠã¶ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ïŒäŸïŒã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒã§äœ¿çšãããŸããäžè¬çã«ã¯ãPKCEïŒProof Key for Code ExchangeïŒä»ãã®èªå¯ã³ãŒãã°ã©ã³ãã®äœ¿çšãæšå¥šããããã®ã°ã©ã³ãã¯éæšå¥šãšãããŠããŸãã
ãããŒ:
- ã¯ã©ã€ã¢ã³ãã¯ãªãœãŒã¹ãªãŒããŒãèªå¯ãµãŒããŒã«ãªãã€ã¬ã¯ãããŸãã
- ãªãœãŒã¹ãªãŒããŒã¯èªå¯ãµãŒããŒã§èªèšŒããã¯ã©ã€ã¢ã³ãã«èš±å¯ãäžããŸãã
- èªå¯ãµãŒããŒã¯ãURLãã©ã°ã¡ã³ãã«ã¢ã¯ã»ã¹ããŒã¯ã³ãå«ããŠãªãœãŒã¹ãªãŒããŒãã¯ã©ã€ã¢ã³ãã«ãªãã€ã¬ã¯ãããŸãã
- ã¯ã©ã€ã¢ã³ãã¯URLãã©ã°ã¡ã³ãããã¢ã¯ã»ã¹ããŒã¯ã³ãæœåºããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé : ã¢ã¯ã»ã¹ããŒã¯ã³ã¯URLãã©ã°ã¡ã³ãã«çŽæ¥å ¬éããããããååã«å¯ŸããŠè匱ã§ãããŸãããªãã¬ãã·ã¥ããŒã¯ã³ãçºè¡ãããªããããã¢ã¯ã»ã¹ããŒã¯ã³ã®æŽæ°ãå°é£ã§ãã
3. ãªãœãŒã¹ãªãŒããŒãã¹ã¯ãŒãã¯ã¬ãã³ã·ã£ã«ã°ã©ã³ã
ãªãœãŒã¹ãªãŒããŒãã¹ã¯ãŒãã¯ã¬ãã³ã·ã£ã«ã°ã©ã³ãã¯ãã¯ã©ã€ã¢ã³ãããªãœãŒã¹ãªãŒããŒã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããçŽæ¥èªå¯ãµãŒããŒã«æäŸããããšã§ã¢ã¯ã»ã¹ããŒã¯ã³ãååŸã§ããããã«ããŸãããã®ã°ã©ã³ãã¿ã€ãã¯ãã¯ã©ã€ã¢ã³ããéåžžã«ä¿¡é ŒãããŠããããªãœãŒã¹ãªãŒããŒãšçŽæ¥çãªé¢ä¿ãããå Žåã«ã®ã¿äœ¿çšãã¹ãã§ãïŒäŸïŒã¯ã©ã€ã¢ã³ãããªãœãŒã¹ãµãŒããŒãšåãçµç¹ã«ãã£ãŠææã»éå¶ãããŠããå ŽåïŒã
ãããŒ:
- ã¯ã©ã€ã¢ã³ãã¯ãªãœãŒã¹ãªãŒããŒã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããèªå¯ãµãŒããŒã«éä¿¡ããŸãã
- èªå¯ãµãŒããŒã¯ãªãœãŒã¹ãªãŒããŒãèªèšŒããã¢ã¯ã»ã¹ããŒã¯ã³ãšãªãã·ã§ã³ã§ãªãã¬ãã·ã¥ããŒã¯ã³ãçºè¡ããŸãã
- ã¯ã©ã€ã¢ã³ãã¯ã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŠä¿è·ããããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé : ãã®ã°ã©ã³ãã¿ã€ãã¯ãã¯ã©ã€ã¢ã³ãããŠãŒã¶ãŒã®è³æ Œæ å ±ãçŽæ¥æ±ããããå§ä»»èªå¯ã®å©ç¹ããã€ãã¹ããŸãã絶察ã«å¿ èŠãªå Žåãé€ãã匷ãéæšå¥šã§ãã
4. ã¯ã©ã€ã¢ã³ãã¯ã¬ãã³ã·ã£ã«ã°ã©ã³ã
ã¯ã©ã€ã¢ã³ãã¯ã¬ãã³ã·ã£ã«ã°ã©ã³ãã¯ãã¯ã©ã€ã¢ã³ããèªèº«ã®è³æ Œæ å ±ïŒã¯ã©ã€ã¢ã³ãIDãšã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ããïŒã䜿çšããŠã¢ã¯ã»ã¹ããŒã¯ã³ãååŸã§ããããã«ããŸãããã®ã°ã©ã³ãã¿ã€ãã¯ãã¯ã©ã€ã¢ã³ãããªãœãŒã¹ãªãŒããŒã®ä»£çã§ã¯ãªããèªèº«ã®ä»£çãšããŠè¡åããå Žåã«äœ¿çšãããŸãïŒäŸïŒã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã®çµ±èšæ å ±ãååŸããå ŽåïŒã
ãããŒ:
- ã¯ã©ã€ã¢ã³ãã¯èªèº«ã®ã¯ã©ã€ã¢ã³ãIDãšã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãããèªå¯ãµãŒããŒã«éä¿¡ããŸãã
- èªå¯ãµãŒããŒã¯ã¯ã©ã€ã¢ã³ããèªèšŒããã¢ã¯ã»ã¹ããŒã¯ã³ãçºè¡ããŸãã
- ã¯ã©ã€ã¢ã³ãã¯ã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŠä¿è·ããããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããŸãã
äŸ: ã¬ããŒãäœæããŒã«ïŒã¯ã©ã€ã¢ã³ãïŒãã¬ããŒããçæããããã«CRMã·ã¹ãã ïŒãªãœãŒã¹ãµãŒããŒïŒã®ããŒã¿ã«ã¢ã¯ã»ã¹ããå¿ èŠããããšããŸããã¬ããŒãäœæããŒã«ã¯èªèº«ã®è³æ Œæ å ±ã䜿çšããŠã¢ã¯ã»ã¹ããŒã¯ã³ãååŸããããŒã¿ãååŸããŸãã
5. ãªãã¬ãã·ã¥ããŒã¯ã³ã°ã©ã³ã
ãªãã¬ãã·ã¥ããŒã¯ã³ã°ã©ã³ãã¯ãçŸåšã®ã¢ã¯ã»ã¹ããŒã¯ã³ãæéåãã«ãªã£ããšãã«æ°ããã¢ã¯ã»ã¹ããŒã¯ã³ãååŸããããã«äœ¿çšãããŸããããã«ããããªãœãŒã¹ãªãŒããŒãã¯ã©ã€ã¢ã³ããåèªå¯ããå¿ èŠããªããªããŸãã
ãããŒ:
- ã¯ã©ã€ã¢ã³ãã¯ãªãã¬ãã·ã¥ããŒã¯ã³ãèªå¯ãµãŒããŒã«éä¿¡ããŸãã
- èªå¯ãµãŒããŒã¯ãªãã¬ãã·ã¥ããŒã¯ã³ãæ€èšŒããæ°ããã¢ã¯ã»ã¹ããŒã¯ã³ãšãªãã·ã§ã³ã§æ°ãããªãã¬ãã·ã¥ããŒã¯ã³ãçºè¡ããŸãã
- ã¯ã©ã€ã¢ã³ãã¯æ°ããã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŠä¿è·ããããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããŸãã
OAuth 2.0å®è£ ã®ã»ãã¥ãªãã£ä¿è·
OAuth 2.0ãå®è£ ããã«ã¯ãè匱æ§ãé²ãããã«ã»ãã¥ãªãã£ã«çްå¿ã®æ³šæãæãå¿ èŠããããŸãã以äžã«äž»èŠãªèæ ®äºé ãæããŸã:
- ã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ããã®ä¿è·: ã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ããã¯æ©å¯æ§ã®é«ãæ å ±ãšããŠæ±ããå®å šã«ä¿ç®¡ããå¿ èŠããããŸããã¯ã©ã€ã¢ã³ããµã€ãã®ã³ãŒããå ¬éãªããžããªã«çŽæ¥ã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãããåã蟌ãŸãªãã§ãã ãããç°å¢å€æ°ãå®å šãªéµç®¡çã·ã¹ãã ã®äœ¿çšãæ€èšããŠãã ããã
- ãªãã€ã¬ã¯ãURIã®æ€èšŒ: èªå¯ã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³æ»æãé²ãããã«ãåžžã«ãªãã€ã¬ã¯ãURIãæ€èšŒããŠãã ãããç»é²æžã¿ã®ãªãã€ã¬ã¯ãURIã®ã¿ãèš±å¯ããŸãã
- HTTPSã®äœ¿çš: çèŽãäžéè æ»æããä¿è·ãããããã¯ã©ã€ã¢ã³ããèªå¯ãµãŒããŒããªãœãŒã¹ãµãŒããŒéã®ãã¹ãŠã®éä¿¡ã¯HTTPSã䜿çšããŠæå·åããå¿ èŠããããŸãã
- ã¹ã³ãŒãå¶éã®å®è£ : ã¯ã©ã€ã¢ã³ãã«ä»äžãããã¢ã¯ã»ã¹ãå¶éããããã«ãã¹ã³ãŒããå®çŸ©ãã匷å¶ããŸããå¿ èŠæå°éã®ã¹ã³ãŒãã®ã¿ãèŠæ±ããŠãã ããã
- ããŒã¯ã³ã®æå¹æé: ã¢ã¯ã»ã¹ããŒã¯ã³ã¯ãããŒã¯ã³ã䟵害ãããå Žåã®åœ±é¿ãéå®ããããã«ãçã寿åœãæã€ã¹ãã§ããå¿ èŠã«å¿ããŠãªãã¬ãã·ã¥ããŒã¯ã³ã䜿çšããŠæ°ããã¢ã¯ã»ã¹ããŒã¯ã³ãååŸããŸãã
- ããŒã¯ã³ã®å€±å¹: ãªãœãŒã¹ãªãŒããŒãã¢ã¯ã»ã¹ããŒã¯ã³ã倱å¹ãããããã®ã¡ã«ããºã ãæäŸããŸããããã«ããããŠãŒã¶ãŒã¯ãã¯ãä¿¡é Œããªãã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ãåãæ¶ãããšãã§ããŸãã
- ãªãã¬ãã·ã¥ããŒã¯ã³ã®ä¿è·: ãªãã¬ãã·ã¥ããŒã¯ã³ãæ©å¯æ§ã®é«ãè³æ Œæ å ±ãšããŠæ±ããŸãããªãã¬ãã·ã¥ããŒã¯ã³ã®ããŒããŒã·ã§ã³ãå®è£ ãããã®å¯¿åœãå¶éããŸãããªãã¬ãã·ã¥ããŒã¯ã³ãç¹å®ã®ããã€ã¹ãIPã¢ãã¬ã¹ã«é¢é£ä»ããããšãæ€èšããŠãã ããã
- PKCE (Proof Key for Code Exchange)ã®äœ¿çš: ãããªãã¯ã¯ã©ã€ã¢ã³ãïŒäŸïŒã¢ãã€ã«ã¢ããªãã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒã§ã¯ãèªå¯ã³ãŒãååæ»æãç·©åããããã«PKCEã䜿çšããŸãã
- ç£èŠãšç£æ»: ç°åžžãªãã°ã€ã³ãã¿ãŒã³ãäžæ£ãªã¢ã¯ã»ã¹è©Šè¡ãªã©ãçãããã¢ã¯ãã£ããã£ãæ€åºããããã«ç£èŠãšç£æ»ãå®è£ ããŸãã
- 宿çãªã»ãã¥ãªãã£ç£æ»: æœåšçãªè匱æ§ãç¹å®ãã察åŠããããã«ãOAuth 2.0å®è£ ã®å®æçãªã»ãã¥ãªãã£ç£æ»ã宿œããŸãã
OpenID Connect (OIDC): OAuth 2.0äžã®èªèšŒ
OpenID Connect (OIDC)ã¯ãOAuth 2.0ã®äžã«æ§ç¯ãããèªèšŒã¬ã€ã€ãŒã§ãããŠãŒã¶ãŒã®èº«å ãæ€èšŒããåºæ¬çãªãããã£ãŒã«æ å ±ãååŸããããã®æšæºåãããæ¹æ³ãæäŸããŸãã
OIDCã®äž»èŠã³ã³ã»ãã:
- IDããŒã¯ã³: èªèšŒã€ãã³ããšãŠãŒã¶ãŒã®èº«å ã«é¢ããã¯ã¬ãŒã ãå«ãJSON Web Token (JWT)ãèªèšŒæååŸã«èªå¯ãµãŒããŒã«ãã£ãŠçºè¡ãããŸãã
- Userinfoãšã³ããã€ã³ã: ãŠãŒã¶ãŒã®ãããã£ãŒã«æ å ±ãè¿ããšã³ããã€ã³ããã¯ã©ã€ã¢ã³ãã¯OAuth 2.0ãããŒã§ååŸããã¢ã¯ã»ã¹ããŒã¯ã³ã䜿çšããŠãã®ãšã³ããã€ã³ãã«ã¢ã¯ã»ã¹ã§ããŸãã
OIDCã䜿çšããå©ç¹:
- ç°¡çŽ åãããèªèšŒ: OIDCã¯ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹éã§ã®ãŠãŒã¶ãŒèªèšŒããã»ã¹ãç°¡çŽ åããŸãã
- æšæºåãããIDæ å ±: OIDCã¯ãååãã¡ãŒã«ã¢ãã¬ã¹ããããã£ãŒã«åçãªã©ããŠãŒã¶ãŒã®ãããã£ãŒã«æ å ±ãååŸããããã®æšæºåãããæ¹æ³ãæäŸããŸãã
- ã»ãã¥ãªãã£ã®åäž: OIDCã¯ãJWTããã®ä»ã®ã»ãã¥ãªãã£ã¡ã«ããºã ã䜿çšããŠã»ãã¥ãªãã£ã匷åããŸãã
ã°ããŒãã«ãªç¶æ³ã«ãããOAuth 2.0: äŸãšèæ ®äºé
OAuth 2.0ã¯ãäžçäžã®ããŸããŸãªæ¥çãå°åã§åºãæ¡çšãããŠããŸãã以äžã«ãããŸããŸãªæèã§ã®äŸãšèæ ®äºé ã瀺ããŸã:
- ãœãŒã·ã£ã«ã¡ãã£ã¢é£æº: å€ãã®ãœãŒã·ã£ã«ã¡ãã£ã¢ãã©ãããã©ãŒã ïŒäŸïŒFacebookãTwitterãLinkedInïŒã¯ããµãŒãããŒãã£ã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒããŒã¿ã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒã«ä»£ãã£ãŠã¢ã¯ã·ã§ã³ãå®è¡ã§ããããã«ããããã«OAuth 2.0ã䜿çšããŠããŸããäŸãã°ãããŒã±ãã£ã³ã°ã¢ããªã±ãŒã·ã§ã³ãOAuth 2.0ã䜿çšããŠãŠãŒã¶ãŒã®LinkedInãããã£ãŒã«ã«æŽæ°ãæçš¿ããå ŽåããããŸãã
- éèãµãŒãã¹: éè¡ãéèæ©é¢ã¯ããµãŒãããŒãã£ã®éèã¢ããªã±ãŒã·ã§ã³ã顧客ã®å£åº§æ å ±ã«å®å šã«ã¢ã¯ã»ã¹ã§ããããã«ããããã«OAuth 2.0ã䜿çšããŠããŸãããšãŒãããã®PSD2ïŒæ±ºæžãµãŒãã¹æä»€ç¬¬2çïŒã¯ããªãŒãã³ãã³ãã³ã°ã®ããã«ããã°ãã°OAuth 2.0ã«åºã¥ãå®å šãªAPIã®äœ¿çšã矩åä»ããŠããŸãã
- ã¯ã©ãŠããµãŒãã¹: ã¯ã©ãŠããããã€ããŒïŒäŸïŒAmazon Web ServicesãGoogle Cloud PlatformãMicrosoft AzureïŒã¯ããŠãŒã¶ãŒããµãŒãããŒãã£ã¢ããªã±ãŒã·ã§ã³ã«èªç€Ÿã®ã¯ã©ãŠããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ã§ããããã«ããããã«OAuth 2.0ã䜿çšããŠããŸãã
- ãã«ã¹ã±ã¢: ãã«ã¹ã±ã¢ãããã€ããŒã¯ããµãŒãããŒãã£ã®ãã«ã¹ã±ã¢ã¢ããªã±ãŒã·ã§ã³ãæ£è ããŒã¿ã«å®å šã«ã¢ã¯ã»ã¹ã§ããããã«ããããã«OAuth 2.0ã䜿çšããç±³åœã®HIPAAããšãŒãããã®GDPRãªã©ã®èŠå¶ãžã®æºæ ã確ä¿ããŠããŸãã
- IoT (Internet of Things): OAuth 2.0ã¯ãããã€ã¹ãšã¯ã©ãŠããµãŒãã¹éã®éä¿¡ãä¿è·ããããã«IoTç°å¢ã§ã®äœ¿çšã«é©åãããããšãã§ããŸããããããIoTããã€ã¹ã®ãªãœãŒã¹å¶çŽã®ãããOAuth for Constrained Application Protocol (CoAP)ã®ãããªç¹æ®ãªãããã¡ã€ã«ããã°ãã°äœ¿çšãããŸãã
ã°ããŒãã«ãªèæ ®äºé :
- ããŒã¿ãã©ã€ãã·ãŒèŠå¶: OAuth 2.0ãå®è£ ããéã¯ãGDPRïŒãšãŒãããïŒãCCPAïŒã«ãªãã©ã«ãã¢ïŒãªã©ã®ããŒã¿ãã©ã€ãã·ãŒèŠå¶ã«æ³šæããŠãã ããããŠãŒã¶ãŒããŒã¿ã«ã¢ã¯ã»ã¹ããåã«æç€ºçãªåæãåŸãŠãããŒã¿æå°åã®ååã«åŸãããšã確èªããŠãã ããã
- ããŒã«ã©ã€ãŒãŒã·ã§ã³: ããŸããŸãªèšèªãæåçå奜ããµããŒãããããã«ãèªå¯ãµãŒããŒã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãããŒã«ã©ã€ãºããŸãã
- ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶: æ¥çãå°åã«ãã£ãŠã¯ãèªèšŒãšèªå¯ã«é¢ããç¹å®ã®ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãååšããå ŽåããããŸããäŸãã°ãéèãµãŒãã¹æ¥çã¯ãã°ãã°å³æ Œãªã»ãã¥ãªãã£èŠä»¶ãæã£ãŠããŸãã
- ã¢ã¯ã»ã·ããªãã£: WCAGã®ãããªã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ã«åŸããããªãã®OAuth 2.0å®è£ ãé害ãæã€ãŠãŒã¶ãŒã«ãã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŠãã ããã
OAuth 2.0å®è£ ã®ãã¹ããã©ã¯ãã£ã¹
以äžã¯ãOAuth 2.0ãå®è£ ããéã«åŸãã¹ããã¹ããã©ã¯ãã£ã¹ã§ã:
- é©åãªã°ã©ã³ãã¿ã€ãã®éžæ: ã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£èŠä»¶ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«æãé©ããã°ã©ã³ãã¿ã€ããæ éã«éžæããŸãã
- ååã«ãã¹ããããã©ã€ãã©ãªã®äœ¿çš: å®è£ ãç°¡çŽ åããã»ãã¥ãªãã£è匱æ§ã®ãªã¹ã¯ãäœæžããããã«ãååã«ãã¹ããããç¶æãããŠããOAuth 2.0ã©ã€ãã©ãªãŸãã¯ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŸããäŸãšããŠã¯ãSpring Security OAuthïŒJavaïŒãOAuthLibïŒPythonïŒãnode-oauth2-serverïŒNode.jsïŒãªã©ããããŸãã
- é©åãªãšã©ãŒåŠçã®å®è£ : ãšã©ãŒãé©åã«åŠçãããŠãŒã¶ãŒã«æçãªãšã©ãŒã¡ãã»ãŒãžãæäŸããããã®å ç¢ãªãšã©ãŒåŠçãå®è£ ããŸãã
- ã€ãã³ãã®ãã°ãšç£èŠ: èªèšŒè©Šè¡ãããŒã¯ã³çºè¡ãããŒã¯ã³å€±å¹ãªã©ã®éèŠãªã€ãã³ãããã°ã«èšé²ããç£æ»ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããŸãã
- äŸåé¢ä¿ã®å®æçãªæŽæ°: ã»ãã¥ãªãã£è匱æ§ã«ããããåœãŠãæ°æ©èœã®æ©æµãåããããã«ãOAuth 2.0ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ãææ°ã®ç¶æ ã«ä¿ã¡ãŸãã
- 培åºçãªãã¹ã: OAuth 2.0å®è£ ãå®å šã§æ©èœçã§ããããšã確èªããããã«ã培åºçã«ãã¹ãããŸããåäœãã¹ããšçµ±åãã¹ãã®äž¡æ¹ãå®è¡ããŸãã
- å®è£ ã®ææžå: ä¿å®ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã«ããããã«ãOAuth 2.0å®è£ ãæç¢ºã«ææžåããŸãã
çµè«
OAuth 2.0ã¯ãçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ã«ãããå®å šãªèªèšŒãšèªå¯ã®ããã®åŒ·åãªãã¬ãŒã ã¯ãŒã¯ã§ãããã®ã³ã¢ã³ã³ã»ãããã°ã©ã³ãã¿ã€ããããã³ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ãçè§£ããããšã§ããŠãŒã¶ãŒããŒã¿ãä¿è·ãããµãŒãããŒãã£ãµãŒãã¹ãšã®ã·ãŒã ã¬ã¹ãªçµ±åãå¯èœã«ãããå®å šã§ãŠãŒã¶ãŒãã¬ã³ããªãŒãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãããŠãŒã¹ã±ãŒã¹ã«é©ããã°ã©ã³ãã¿ã€ããéžæããã»ãã¥ãªãã£ãåªå ããå ç¢ã§ä¿¡é Œæ§ã®é«ãå®è£ ã確ä¿ããããã«ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšãå¿ããªãã§ãã ãããOAuth 2.0ãæ¡çšããããšã¯ãããæ¥ç¶ãããå®å šãªããžã¿ã«äžçãå¯èœã«ããäžçèŠæš¡ã§ãŠãŒã¶ãŒãšéçºè ã®äž¡æ¹ã«å©çããããããŸãã